package cn.liujianbo.easycode.controller;

import cn.liujianbo.easycode.model.vo.BaseInfoVO;
import cn.liujianbo.easycode.model.req.BaseInfoInsertReq;
import cn.liujianbo.easycode.model.req.BaseInfoUpdateReq;
import cn.liujianbo.easycode.model.req.BaseInfoPageReq;
import cn.liujianbo.easycode.biz.BaseInfoBiz;
import cn.liujianbo.easycode.common.R;
import cn.liujianbo.easycode.common.PageVO;
import cn.liujianbo.easycode.common.annotation.Log;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import lombok.RequiredArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * 网站基础信息(BaseInfo)表控制层
 *
 * @author 刘建波
 * @since 2022-06-10 14:24:15
 */
@Api(tags = "BaseInfoController")
@RequiredArgsConstructor
@RestController
@RequestMapping("baseInfo")
public class BaseInfoController {

    private final BaseInfoBiz biz;

    @ApiOperation("分页列表")
    @GetMapping("/page")
    public R<PageVO<BaseInfoVO>> page(BaseInfoPageReq req) {
        return R.ok(biz.page(req));
    }

    @ApiOperation("详情")
    @GetMapping("/info/{id}")
    public R<BaseInfoVO> info(@PathVariable("id") Integer id) {
        return R.ok(biz.info(id));
    }

    @ApiOperation("新增")
    @Log
    @PostMapping("/add")
    public R<Void> add(@RequestBody @Validated BaseInfoInsertReq req) {
        biz.add(req);
        return R.ok();
    }

    @ApiOperation("修改")
    @Log
    @PutMapping("/update")
    public R<Void> updateById(@RequestBody BaseInfoUpdateReq req) {
        biz.updateById(req);
        return R.ok();
    }

    @ApiOperation("删除")
    @Log
    @DeleteMapping("/del/{id}")
    public R<Void> del(@PathVariable("id") Integer id) {
        biz.del(id);
        return R.ok();
    }
}

